草庐IT

security - PHP session 安全

全部标签

c# - 如何测试线程安全

这个问题在这里已经有了答案:Unittestingamultithreadedapplication?(9个回答)HowshouldIunittestmultithreadedcode?(29个答案)关闭5年前。您对如何测试多线程应用程序有什么建议吗?我知道,线程错误很难发现,它们可能随时发生,也可能根本不发生。测试很困难,结果永远不确定。当然最好仔细设计和编程并发模块。尽管如此-我不想遗漏测试方面。因此,有时运行大量处理相同项目的线程可能会引发线程错误。有什么想法或最佳实践可以提高隐藏线程错误的命中率吗?(我正在使用.Net/C#)

c# - 设计线程安全类

阅读MSDN文档时,它总是让您知道某个类是否是线程安全的。我的问题是你如何设计一个线程安全的类?我不是在谈论用锁定调用类我的意思是我正在为MicrosoftcreateXXXclass\object工作,我想说它是“线程安全的”我需要做什么? 最佳答案 使类线程安全的最简单和最万无一失的方法是使其成为immutable.它的美妙之处在于您不必再为锁定而烦恼。秘诀:在C#中将所有实例变量设置为readonly(在Java中为final)。不可变对象(immutable对象)一旦在构造函数中创建和初始化,就无法更改。不可变对象(immu

c# - 更改每个请求的安全协议(protocol) (HttpClient)

我有一个WebAPI,它必须与一些不同的服务进行通信。目前,我将WebAPI设置为使用以下安全协议(protocol):ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;当API通过HttpClient(比如Twitter)调用另一个服务时,它将使用该协议(protocol)。然而与此同时,另一个请求可能会进入以访问来自云的某些内容,无论出于何种原因,目前需要TLS(而不是TLS1.2)。对云端的请求,在发出前,再次设置安全协议(protocol):ServicePointManager.SecurityPr

c# - 异步线程安全从 MemoryCache 获取

我创建了一个使用.NETMemoryCache的异步缓存。这是代码:publicasyncTaskGetAsync(stringkey,Func>populator,TimeSpanexpire,objectparameters){if(parameters!=null)key+=JsonConvert.SerializeObject(parameters);if(!_cache.Contains(key)){vardata=awaitpopulator();lock(_cache){if(!_cache.Contains(key))//Checkagainbutlockedthist

c# - 访问已处置的闭包 - 将方法标记为安全

这是关于ReSharper的警告“Accesstodisposedclosure”,通常出现在lambda中使用稍后处置的对象时。AccesstodisposedclosureinC#?对此进行了更详细的讨论。我的问题是:对于采用此类lamdb并立即执行它们的方法(因此您可以确保它们始终在处理所述对象之前执行):有没有办法将它们标记为安全的,以便使用该方法的任何代码都不会再产生这些警告?例子:using(varmyObject=newMyDisposableObject()){DoThisTwice(()=>myObject.DoSomething());}...voidDoThisT

c# - 如何安全地将包含转义 JSON 的字符串转换为有效的 JSON?

我正在与返回JSON响应的第三方API通信,如下所示:"{\"SomeResponse\":{\"FIrstAttribute\":8,\"SecondAttribute\":\"On\",\"ThirdAttribute\":{\"Id\":2,\"FirstName\":\"Okkie\",\"Name\":\"Bokkie\",\"Street\":\"\",\"StreetNumber\":null,\"PostCode\":\"\",\"City\":\"\",\"Country\":\"}}}"它是一种JSON...但作为字符串。请注意第一个和结尾的双引号,当然还有所有转义

c# - List<T>.AddRange() 线程安全吗?

我可以在不锁定的情况下从多个线程安全地调用List.AddRange(r)吗?如果不是,我会遇到什么样的麻烦? 最佳答案 否,itsdocumentation没有说它是线程安全的,因此它不是。Publicstatic(SharedinVisualBasic)membersofthistypearethreadsafe.Anyinstancemembersarenotguaranteedtobethreadsafe.至于哪里会出错,想想AddRange(newItems)做了什么:检查内部数组是否有足够的空间如果不是:分配一个新数组将

c# - 不能包含 Microsoft.Security.Application?

我不能包含Microsoft.Security.ApplicationusingMicrosoft.Security.Application;给出这个错误:Thetypeornamespacename'Security'doesnotexistinthenamespace'Microsoft'(areyoumissinganassemblyreference?)是的,我点击了Bin->AddReference...->AntiXSSLibrary.dll并将其添加到包含AntiXSSLibrary.xml的Bin文件夹中。我重建了整个网站,但仍然一无所获。我正在使用ASP.NET3.5

c# - .Net 4.0 System.Web.Security.MembershipProvider 引用不明确?

我最近将我的BlogEngine.Net安装升级到1.6和.Net4.0,但是,我在执行升级时没有构建BlogEngine.Core。但是,当我现在尝试构建BlogEngine.Core项目时,编译失败,因为它无法加载(System.Web.Security.)MembershipProvider的符号。我认为这是一个.Net/C#/user问题,而不是BlogEngine问题。该项目引用了System.Web库,类文件(继承自MembershipProvider)包含一个用于System.Web.Security的Using。启用ReSharper后,IntelliSense会指示混

c# - 单例成员的线程安全使用

我有一个多个类使用的C#单例类。通过Instance访问Toggle()方法线程安全吗?如果是,根据什么假设、规则等。如果不是,为什么和我该如何解决?publicclassMyClass{privatestaticreadonlyMyClassinstance=newMyClass();publicstaticMyClassInstance{get{returninstance;}}privateintvalue=0;publicintToggle(){if(value==0){value=1;}elseif(value==1){value=0;}returnvalue;}}